package com.haois.mp.database.module.remote.service;

import java.util.Map;

/**
 * Created by RuiHaoZ on 2017/12/2.
 */
public interface IGroupService {

    /**
     * 获取用户加入的组织，包含分享组织和私有组织
     * @param type 组织类型 暂未使用
     * @param accessToken 认证信息
     * @return
     */
    Map getGroupList(String type, String accessToken);

    Map getGroupList(String type, String accessToken,Map params);


    Map getGroupListSize(String type, String accessToken);
    /**
     * 获取组织信息，包含用户是否存在该组织
     * @param oid 组织Id，无论组织类型
     * @param access_token 认证信息
     * @return
     */

    Map getGroup(String oid, String access_token);

    /**
     * 获取用户加入的组织，包含分享组织和私有组织和关注组织
     * @param access_token 认证信息
     * @return
     */
    Map getGroupList(String access_token);

    /**
     * 获取组织中成员信息
     * @param oid 组织Id
     * @param accessToken 认证信息
     * @return
     */
    Map getMemberByOid(String oid, String accessToken);

    /**
     * 获取组织树结构
     * @param oid 组织Id
     * @param access_token 认证信息
     * @return
     */
    Map getDepTree(String oid, String access_token);

    /**
     * 更新用户和组织的授权状态
     * @param oid 用户Id
     * @param access_token 认证信息
     * @return
     */

    Map updateAuthorizeMemState(String oid, String access_token);

    Map updateAuthorizeOrgState(String oid, String access_token);

    /**
     * 加入组织
     * @param oid 组织Id
     * @param accessToken 认证信息
     * @return
     */

    Map joinGroup(String oid, String accessToken);

    Map joinGroupByMark(String mark, String accessToken);
    Map getGroupRelation(String oid,String memberNum,String accessToken);
    Map getGroupRelationByMark(String mark,String memberNum,String accessToken);
    Map sendApply(String oid,String content,String excuse,String access_token);

    /**
     * 退出组织
     * @param oid 组织Id
     * @param accessToken 认证信息
     * @return
     */
    Map exitGroup(String oid, String accessToken);


}
